package JavaCode;

import java.util.ArrayList;
import java.util.Random;

public class Entrenamiento {
	ArrayList<String> resumen = new ArrayList<String>();

	public Entrenamiento() {
	}

	public void entrenarUSU(Gladiador g, int nivelF, int nivelD, int nivelA,
			int nivelR, int entrenador, int medico) {
		resumen.add("Efectos de entrenamiento semanal de " + g.getName() + " ." + "\n");
		Random asd = new Random();
		int aux = 0;
		g.setHp(g.getHp() + asd.nextInt(20) + medico * 10);
		if (g.getHp() > g.getHptotal())
			g.setHp(g.getHptotal());
		switch (g.getEntrenamiento1()) {
		case 0:
			break;
		case 1:
			aux = ((asd.nextInt(25) + nivelF * 10) / g.getStr());
			if (aux > 3)
				aux = 3;
			g.setStr(g.getStr() + aux);
			resumen.add("Fuerza: +" + aux + "\n");
			break;
		case 2:
			aux = ((asd.nextInt(25) + nivelD * 10) / g.getDex());
			if (aux > 3)
				aux = 3;
			g.setDex(g.getDex() + aux);
			resumen.add("Destreza: +" + aux + "\n");
			break;
		case 3:
			aux = ((asd.nextInt(25) + nivelA * 10) / g.getAgi());
			if (aux > 3)
				aux = 3;
			g.setAgi(g.getAgi() + aux);
			resumen.add("Agilidad: +" + aux + "\n");
			break;
		case 4:
			aux = ((asd.nextInt(25) + nivelR * 10) / g.getRes());
			if (aux > 3)
				aux = 3;
			g.setRes(g.getRes() + aux);
			resumen.add("Resistencia: +" + aux + "\n");
			break;
		}
		switch (g.getEntrenamiento2()) {
		case 0:
			break;
		case 1:
			aux = ((asd.nextInt(25) + entrenador * 10) / g.getAmbidex());
			if (aux > 3)
				aux = 3;
			g.setAmbidex(g.getAmbidex() + aux);
			resumen.add("Ambidextrismo: +" + aux + "\n" + "\n");
			break;
		case 2:
			aux = ((asd.nextInt(25) + entrenador * 10) / g.getHabEsp1());
			if (aux > 3)
				aux = 3;
			g.setHabEsp1(g.getHabEsp1() + aux);
			resumen.add("Habilidad con Espada: +" + aux + "\n" + "\n");
			break;
		case 3:
			aux = ((asd.nextInt(25) + entrenador * 10) / g.getHabEsc());
			if (aux > 3)
				aux = 3;
			g.setHabEsc(g.getHabEsc() + aux);
			resumen.add("Habilidad con Escudo: +" + aux + "\n" + "\n");
			break;
		case 4:
			aux = ((asd.nextInt(25) + entrenador * 10) / g.getHabBlunt1());
			if (aux > 3)
				aux = 3;
			g.setHabBlunt1(g.getHabBlunt1() + aux);
			resumen.add("Habilidad con Hacha: +" + aux + "\n" + "\n");
			break;
		case 5:
			aux = ((asd.nextInt(25) + entrenador * 10) / g.getHabSpear1());
			if (aux > 3)
				aux = 3;
			g.setHabSpear1(g.getHabSpear1() + aux);
			resumen.add("Habilidad con Lanza: +" + aux + "\n" + "\n");
			break;
		case 6:
			aux = ((asd.nextInt(25) + entrenador * 10) / g.getHabHand2());
			if (aux > 3)
				aux = 3;
			g.setHabHand2(g.getHabHand2() + aux);
			resumen.add("Habilidad Cuerpo a Cuerpo: +" + aux + "\n" + "\n");
			break;
		}
	}
	
	public void entrenarCPU(Gladiador g, int nivelF, int nivelD, int nivelA,
			int nivelR, int entrenador, int medico) {
		Random asd = new Random();
		int aux = 0;
		g.setHp(g.getHp() + asd.nextInt(20) + medico * 10);
		if (g.getHp() > g.getHptotal())
			g.setHp(g.getHptotal());
		switch (g.getEntrenamiento1()) {
		case 0:
			break;
		case 1:
			aux = ((asd.nextInt(25) + nivelF * 10) / g.getStr());
			if (aux > 3)
				aux = 3;
			g.setStr(g.getStr() + aux);
			break;
		case 2:
			aux = ((asd.nextInt(25) + nivelD * 10) / g.getDex());
			if (aux > 3)
				aux = 3;
			g.setDex(g.getDex() + aux);
			break;
		case 3:
			aux = ((asd.nextInt(25) + nivelA * 10) / g.getAgi());
			if (aux > 3)
				aux = 3;
			g.setAgi(g.getAgi() + aux);
			break;
		case 4:
			aux = ((asd.nextInt(25) + nivelR * 10) / g.getRes());
			if (aux > 3)
				aux = 3;
			g.setRes(g.getRes() + aux);
			break;
		}
		switch (g.getEntrenamiento2()) {
		case 0:
			break;
		case 1:
			aux = ((asd.nextInt(25) + entrenador * 10) / g.getAmbidex());
			if (aux > 3)
				aux = 3;
			g.setAmbidex(g.getAmbidex() + aux);
			break;
		case 2:
			aux = ((asd.nextInt(25) + entrenador * 10) / g.getHabEsp1());
			if (aux > 3)
				aux = 3;
			g.setHabEsp1(g.getHabEsp1() + aux);
			break;
		case 3:
			aux = ((asd.nextInt(25) + entrenador * 10) / g.getHabEsc());
			if (aux > 3)
				aux = 3;
			g.setHabEsc(g.getHabEsc() + aux);
			break;
		case 4:
			aux = ((asd.nextInt(25) + entrenador * 10) / g.getHabBlunt1());
			if (aux > 3)
				aux = 3;
			g.setHabBlunt1(g.getHabBlunt1() + aux);
			break;
		case 5:
			aux = ((asd.nextInt(25) + entrenador * 10) / g.getHabSpear1());
			if (aux > 3)
				aux = 3;
			g.setHabSpear1(g.getHabSpear1() + aux);
			break;
		case 6:
			aux = ((asd.nextInt(25) + entrenador * 10) / g.getHabHand2());
			if (aux > 3)
				aux = 3;
			g.setHabHand2(g.getHabHand2() + aux);
			break;
		}
	}

	public ArrayList<String> getResumen() {
		return resumen;
	}

	public void setResumen(ArrayList<String> resumen) {
		this.resumen = resumen;
	}

}
